Computer controlled display devices have become very useful for displaying information to the user. The information displayed to the user can take many forms. For example, it may be useful to display information in terms of alpha numerical characters to form text, or in terms of line art graphics (also called flat tone graphics), or in terms of continuous-tone imagery, consisting of both natural scenes and/or synthetically generated scenes. Such displays typically use color to increase the amount of information presented to the user. In addition, the displays can be arranged to have different formats and parts. For example, parts of the display may take the form of windows in which an image can be displayed.
It is often desired to manipulate parts of the display and show the results of such manipulation as close as possible to instantaneously on the display. For example, it is often desired to manipulate attributes such as contrast, brightness and color cast of a natural scene displayed on part of the display, and to show the results of such manipulation on the display during the manipulation as an aid to the user.
Unfortunately, the ability to display information in multiple formats on a display device and to interactively manipulate parts of the display and show the results on the same or other parts of the display come at the expense of processing time. The conventional computer-driven display system consists of a large block of memory allocated to store the information for display on the display screen. This memory is broken up into small elements called picture elements (commonly known as pixels), each of which consists of one or more memory bits. For example, the memory allocated to the display device could consist of a two-dimensional array of pixels (e.g., 1,000 pixels by 1,000 pixels) where 24 bits are used to describe the information in each pixel that is, 8 bits are used to describe the amounts of each of red, green and blue, respectively, for that pixel or part of the image. Such a display device would have 3 million bytes of storage space. The memory allocated to the display device is often referred to as a frame buffer. A typical display device is controlled by a video controller which reads out the information in the frame buffer pixel by pixel and converts it to the information needed to drive the physical display. For example, in a cathode ray tube (CRT) display this information is used to drive the red, green, and blue guns of the CRT. Often, a video look-up table (VLUT) exists in a memory device between the frame buffer and the display itself to enable altering of the color information stored in the frame buffer prior to driving the actual display to form a visual image to the user. In some implementations, the RAM of the frame buffer constitutes part of the RAM of the associated computer system.
If the information that forms the image is processed or modified in some manner, displaying the results of such modification or processing involves writing to at least that part of the frame buffer. A disadvantage of this is that it may take some time, given the amount of information involved. For example, to modify a 500 pixel by 500 pixel window of the original 1,000 pixel by 1,000 pixel display involves modifying and rewriting 750,000 bytes when 24 bits per pixel are used.
Some image manipulations or image processing functions are known in the art as point processes. These involve changing the color information at each pixel according to some function of only that pixel. That is, the resulting new color information for that pixel depends only on the original color information of that pixel and on the mathematical function preformed. Examples of point processing include contrast changes, brightness changes, contrast stretching, color cast changes, shadow changes, highlight changes, and mid-tone contrast changes. Image processing which performs functions such as sharpening and blurring, on the other hand, are spatial processes whereby the information at a particular pixel depends not only on the original information in that pixel and on the particular mathematical functions performed, but also on the original information in some neighboring pixels. A feature of point processes is that they can be performed either by mathematical computation or by pre computing the results for all possible inputs and then building a look-up table for that particular function. Using a look-up table is usually a faster operation than calculating the necessary results for each pixel.
Whenever point processes are needed to be performed, a prior art method of overcoming the slowness of needing to rewrite the frame buffer with the results of processing is to load a new video look-up table which combines the original look-up table and the look-up table needed to perform the mathematical function. Such a prior art method is described for example in "Image Composition via Look-up Table Manipulation," by James D. Foley and Won Chul Kim, IEEE Computer Graphics and Applications, November, 1987, pages 26-35. A disadvantage of this prior art scheme is that the processing would be carried out on all pixels in the whole frame buffer whereas it is often desired to perform processing on one geometrically constrained part (e.g. a window region) of the display only without effecting other parts of the display. Therefore, even with this prior art scheme, performing processing on only a part of a display, for example one window, still requires rewriting those memory elements in the frame buffer corresponding to that geometric part of the display. An additional disadvantage of having to rewrite part of the frame buffer is that while these changes are occurring, the user is presented with a continually changing displayed area. This is because parts of the image stored in the frame buffer are being updated and displayed before other parts of the image can be updated and displayed.
For interactive processing of displayed information, one can provide manual control tools, which can either exist as separate devices or can be presented graphically on a display. Examples of such controls are for point processes used to change the aesthetic appearance of color images including brightness, contrast, highlight contrast, shadow contrast, mid-tone contrast, white (or light) point, black (or dark) point, and overall color cast. It is desirable for interactive image processing that changing one or more of these controls changes those attributes on the image being displayed to change as rapidly as possible, appearing to be instantaneous.
If a user is less than completely proficient with the intricacies of image attribute alterations, it is desirable to give the user a preview of how changing these attributes would effect the image. U.S. patent application Ser. No. 07/582,054 ("Color Correction System Employing Reference Picture," William F. Schreiber, Efraim Arazi and Abraham Bar, inventors) filed Sep. 14, 1990, describes a method and means for providing several variants of an original image where each variant provides a preview of what would happen if certain processing were applied to an image. Such processing is not restricted to point processes performed on the original image. As an aid for the user who is less than completely proficient with the intricacies of color attribute alterations and of image processing in general, the user may display several variants on part of a display, and choose to perform the processing not by the manual control but by looking at the variant previews and selecting one of those. This method is referred to as multiple choice.
A disadvantage of the prior art is that there is no tie-in between the manual controls and the multiple choice. An operator who uses multiple choice as the method to effect processing because of lack of proficiency in the intricacies of the art does not learn how to affect the processing manually by using the multiple choice and therefore does not become more proficient in time. Also, when manual control or a selection from the multiple choice is used to affect processing of an image, it is necessary to compute new variants to offer to the user for further multiple choice selection. Using traditional methods, it would take much time to compute new variants. This excess of computing time means that the user cannot proficiently learn the effect of manual changes on the image.
The present invention seeks to improve the ability of computer color systems to give rapid feedback to the user from color modifications of an image, whether by using manual colors or by selecting a multiple choice variant of the image. The invention also seeks to provide rapid updating of one part of a screen without updating other parts. It is a further object of the invention to link the multiple-choice variants to the analog controls so that selection of a variant will result in rapid updating of the user image as well as rapid updating of the analog controls to show the user how a selected variant modified the analog controls.